import java.util.Random;
public class Main
{
    public static void main(String[] args) {


        Random rand = new Random();

        Machine m = new Aircraft();

        outer: while (true)
        {
            int op = rand.nextInt(10); // 随机产生 [ 0 , 10 ) 之间的数字
            switch (op)
            {
                case 0:
                    if (m.getEnergy() >= 10)
                    {
                        m.run();
                        System.out.println(m.getEnergy());

                    }

                    if(m.getEnergy()<10)
                    {
                        System.out.println("能量不够航行了");
                        System.out.println(m.getEnergy());
                        break outer;
                    }


                    // 需要判断能量是否足以完成 陆地驾驶 操作，若不足就跳出循环 (如何从switch直接跳出while循环?)
                    // 执行 陆地驾驶 操作 ( Machine 不具备陆地驾驶能力，需要转换为 Roadable 才可以调用 run 方法 )


                    case 1:
                        if (m.getEnergy() >= 15)
                        {
                            m.voyage();
                            System.out.println(m.getEnergy());

                        }
                            if(m.getEnergy()<15)
                            {
                            System.out.println("能量不够航行了");
                            System.out.println(m.getEnergy());
                            break outer;
                            }


                        // 需要判断能量是否足以完成 水中航行 操作，若不足就跳出循环
                        // 执行 水中航行 操作 ( Machine 不具备水中航行能力，需要转换为 Voyageable 才可以调用 voyage 方法 )


                        case 2:
                            if (m.getEnergy() >= 25)
                            {
                                m.fly();
                                System.out.println(m.getEnergy());

                            }
                            if(m.getEnergy()<25)
                            {
                                System.out.println("能量不够航行了");
                                System.out.println(m.getEnergy());
                                break outer;
                            }


                            // 需要判断能量是否足以完成 空中飞行 操作，若不足就跳出循环
                            // 执行 空中飞行 操作 ( Machine 不具备空中飞行能力，需要转换为 Flyable 才可以调用 fly 方法 )

                default:
                    // 不支持的操作
                       continue;
            }

        }
        System.out.println("还剩余能量："+m.getEnergy());
    }

// 最后输出 飞行器 的剩余能量
}
